The use of a hand operated pointing device for use with a computer and its display has become almost universal. One form of the various types of pointing devices is the conventional (mechanical) mouse, used in conjunction with a cooperating mouse pad. Mechanical mice typically include a rubber-surfaced steel ball that rolls over the mouse pad as the mouse is moved. Interior to the mouse are rollers, or wheels, that contact the ball at its equator and convert its rotation into electrical signals representing orthogonal components of mouse motion. These electrical signals are coupled to a computer, where software responds to the signals to change by a ΔX and a ΔY the displayed position of a pointer (cursor) in accordance with movement of the mouse.
In addition to mechanical types of pointing devices, such as a conventional mechanical mouse, optical pointing devices have also been developed. In one form of an optical pointing device, rather than using a moving mechanical element like a ball, relative movement between an imaging surface, such as a finger or a desktop, and an image sensor within the optical pointing device, is optically sensed and converted into movement information.
Electronic image sensors, such as those typically used in optical pointing devices, are predominantly of two types: CCDs (Charge Coupled Devices) and CMOS—APS (Complimentary Metal Oxide Semiconductor—Active Pixel Sensors). Both types of sensors typically contain an array of photodetectors (e.g., pixels), arranged in a pattern. Each individual photodetector operates to output a signal with a magnitude that is proportional to the intensity of light incident on the site of the photodetector. These output signals can then be subsequently processed and manipulated to generate an image that includes a plurality of individual picture elements (pixels), wherein each pixel in the image corresponds with one of the photodetectors in the image sensor.
Despite advances in the manufacturing process, digital image sensors often contain a few defective pixels as a result of noise or fabrication errors, such as impurity contamination. Defective pixels respond inappropriately to the incident light, and therefore produce inaccurate sensor values. Defective pixels are predominantly of three types: stuck high, stuck low, or abnormal sensitivity. A stuck high pixel has a very high or near to full scale output, while a stuck low pixel has a very low or near to zero output. An abnormal sensitivity pixel produces a sensor value different from neighboring pixels by more than a certain amount when exposed to the same light conditions.
If the image sensor of an optical pointing device contains defective pixels, such as stuck high or stuck low pixels, the values from these pixels may never change, which biases the navigation computation and can cause errors. The values from abnormal sensitivity pixels may change, but such pixels do not perform as expected and can also cause errors. The bad pixels can be caused by one or more of the following: (1) defects in the silicon; (2) external contamination (e.g., particles, fibers, “flash,” etc., landing on the array); and (3) improper illumination (e.g., the illumination spot can be de-centered such that part of the array is too “dark”). “Flash” is mold compound that sticks out from a molded piece and that can come loose from the molded piece during production or during use by a customer, and cause particle contamination of the array.
Various defective pixel identification methods have been used in some digital cameras. In these digital cameras, a defective pixel is typically identified by examining the difference between responses of the defective pixel and its immediate pixel neighbors to the same illumination. Once identified, the pixel value of a defective pixel is typically replaced with an estimated value from pixels in the neighborhood of the defective pixel. The process of detecting and correcting defective pixels is referred to as bad pixel correction (BPC).
Existing BPC techniques, such as those used for digital cameras, do not address defects caused by a misaligned illumination source. Digital cameras rely on ambient light to capture images. In contrast, optical pointing devices typically include a light source that is carefully aligned to provide the desired illumination. If the light path becomes offset from the desired alignment, either during production or during use by a customer, a portion of the photodetector array may not receive adequate illumination. The pixels that do not receive adequate illumination may be considered defective pixels. In addition to not addressing such illumination problems, existing BPC techniques typically replace bad pixel values with “good” values computed from neighboring pixels, rather than excluding a bad pixel from subsequent computations.